home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / OpenLinux 2.3 CD.iso / col / launch / floppy / modules.144 / etc / rc.d / rc.pcmcia
Encoding:
Text File  |  1998-07-21  |  2.1 KB  |  111 lines

  1. #!/bin/sh
  2. #
  3. # rc.pcmcia 1.15 1996/07/23 15:47:50 (David Hinds)
  4. #
  5. # This is designed to work in BSD as well as SysV init setups.  See
  6. # the HOWTO for customization instructions.
  7.  
  8. usage()
  9. {
  10.     echo "Usage: $0 {start|stop|restart}"
  11. }
  12.  
  13. cleanup()
  14. {
  15.     while read SN CLASS MOD INST DEV EXTRA ; do
  16.     if [ "$SN" != "Socket" ] ; then
  17.         /etc/pcmcia/$CLASS stop $DEV 2> /dev/null
  18.     fi
  19.     done
  20. }
  21.  
  22. # Source PCMCIA configuration, if available
  23. if [ -f /etc/sysconfig/pcmcia ] ; then
  24.     . /etc/sysconfig/pcmcia
  25. else
  26.     PCMCIA=yes
  27.     # Should be either i82365 or tcic
  28.     PCIC=i82365
  29.     # Put socket driver timing parameters here
  30.     PCIC_OPTS=
  31.     # Put pcmcia_core options here
  32.     CORE_OPTS=
  33. fi
  34.  
  35. EXITCODE=1
  36. for x in "1" ; do
  37.  
  38.     # Check that PCMCIA is up
  39.     [ ${PCMCIA} = "no" ] && break
  40.  
  41.     if [ "$PCIC" = "" ] ; then
  42.     echo "PCIC not defined in rc.pcmcia!"
  43.     break
  44.     fi
  45.  
  46.     if [ $# -lt 1 ] ; then usage ; break ; fi
  47.     action=$1
  48.  
  49.     case "$action" in
  50.  
  51.     'start')
  52.     if [ -s /var/run/cardmgr.pid ] ; then
  53.         if kill -0 `cat /var/run/cardmgr.pid` 2>/dev/null ; then
  54.         echo "cardmgr is already running"
  55.         break
  56.         else
  57.         echo "Cleaning up left-over PCMCIA devices..."
  58.         cat /var/run/stab | cleanup
  59.         fi
  60.     fi
  61.     echo -n "Starting PCMCIA services:"
  62.     PC=/lib/modules/`uname -r`/pcmcia
  63.     SC=/var/run/pcmcia-scheme
  64.     if [ -L $SC -o ! -O $SC ] ; then rm -f $SC ; fi
  65.     if [ ! -f $SC ] ; then umask 022 ; echo > $SC ; fi
  66.     if [ -d $PC ] ; then
  67.         /sbin/insmod $PC/pcmcia_core.o $CORE_OPTS
  68.         /sbin/insmod $PC/$PCIC.o $PCIC_OPTS
  69.         /sbin/insmod $PC/ds.o
  70.         /sbin/cardmgr
  71.         echo -n " cardmgr"
  72.     else
  73.         echo " Module directory $PC not found!"
  74.         break
  75.     fi
  76.     echo "."
  77.     ;;
  78.  
  79.     'stop')
  80.     echo -n "Shutting down PCMCIA services:"
  81.     if killall cardinfo 2>/dev/null ; then echo -n " cardinfo" ; fi
  82.     PID=`cat /var/run/cardmgr.pid`
  83.     kill $PID
  84.     echo -n " cardmgr"
  85.     while kill -0 $PID 2>/dev/null ; do sleep 2 ; done
  86.     /sbin/rmmod ds
  87.     /sbin/rmmod $PCIC
  88.     /sbin/rmmod pcmcia_core
  89.     echo "."
  90.     EXITCODE=0
  91.     ;;
  92.  
  93.     'restart')
  94.     $0 stop
  95.     $0 start
  96.     EXITCODE=0
  97.     ;;
  98.  
  99.     *)
  100.     usage
  101.     ;;
  102.  
  103.     esac
  104.  
  105. done
  106.  
  107. # Only exit if we're in our own subshell
  108. if [ "${0##*/}" = "rc.pcmcia" ] ; then
  109.     exit $EXITCODE
  110. fi
  111.